OPTIMIZACIÓN DEL DISEÑO DE UN BRAZO DE ROBOT USANDO ALGORITMOS GENÉTICOS

En este ejemplo se uso una técnica híbrida para optimizar el balanceo de los contrapesos de un brazo de robot, mediante la combinación de un algoritmo genético y el método min-max de optimización con múltiples objetivos, con la finalidad de obtener el conjunto de soluciones de Pareto. Este conjunto corresponde a varios diseños posibles del robot, de los cuales el diseñador habrá de seleccionar el que desee. Nuestra técnica se compara con una técnica de búsqueda min-max tradicional, en la cual se usó una combinación de búsqueda aleatoria y secuencial para generar las soluciones de Pareto. Nuestros resultados muestran cómo el algoritmo genético es capaz de obtener soluciones con una menor desviación del vector ideal para este problema altamente no convexo, en el cual la cantidad de tiempo de proceso requerido es una restricción seria dada la complejidad de los cálculos involucrados.



PLANTEAMIENTO DEL PROBLEMA

Consideremos el PUMA-560 mostrado en la Figura 1. Koski y Osyczka [1] presentan un modelo de optimización con objetivos múltiples de este brazo, basado en su dinámica de cuerpo rígido. Mediante el uso de las coordenadas angulares del PUMA-560, podemos calcular los momentos torsionantes generalizados en cada junta.
La aplicación de la Ecuación (1) a un brazo de robot completamente articulado resulta en el siguiente:

n1.png
external image moz-screenshot.pngexternal image moz-screenshot-1.png
Brazo de robot PUMA-560 y representación esquemática de los ángulos coordenados qi. Tomado de la ecuación anterior.

n2.png
El manipulador es una estructura isostática y por tanto es posible obtener expresiones explícitas para todas las fuerzas y momentos en el sistema. La fricción en las juntas así como la flexibilidad del brazo no se incluyen en el modelo de diseño que se describirá a continuación. Para la aplicación de los métodos de optimización existentes, se consideró un brazo de robot de dos miembros, el cual corresponde a las dos articulaciones del robot PUMA-560 en un movimiento bidimensional. Se asume que este brazo se mueve sólo en el plano xy (las coordenadas angulares qi correspondientes se muestran en la Figura 2). Las masas de los miembros son m1 y m2 ,y se localizan como masas puntuales a distancias e1 y e2 de las juntas. La carga externa está representada por la masa puntual m3. En el modelo usado por Koski y Osyczka, sólo las masas de contrapeso m4 y m5, así como las distancias x1 y x2 de las juntas, son tratadas como variables de diseño, mientras que todas las demás cantidades permanecen fijas.

n3.png

external image moz-screenshot-2.png
Figura 2 : Modelo mecánico del brazo de robot usado para nuestro trabajo. Tomado de Koski y Osyczka.

USO DEL ALGORITMO GENÉTICO

Consistió en usar un algoritmo genético (AG) para obtener tanto el vector ideal como las soluciones óptimas de Pareto. Primero, corrimos varios AGs para optimizar cada objetivo por separado. Después, haciendo uso de este vector, introducimos la siguiente función de aptitud:
n4.png


Los pesos wi también se escogieron de forma que:

external image moz-screenshot-3.pngn5.png


Para todas las pruebas que corrimos, utilizamos selección mediante torneo binario, cruza de dos puntos, y un tamaño de población de 100 cromosomas. En vez de hacer varias corridas con valores aleatorios para las probabilidades de cruza y de mutación, usamos un ciclo anidado en el cual estos dos valores variaron de 0.1 a 0.9 con incrementos de 0.1, a lo largo de 50 generaciones. Esto implica que se requirieron 81 corridas para cada diseño. Este rocedimiento probó ser muy confiable en términos de encontrar "buenas" soluciones con el AG, utilizando una representación de punto flotante. El tiempo de ejecución se vuelve un problema a tomar en consideración, dado que cada corrida del AG toma alrededor de 2.5 horas en una estación de trabajo Sun con cuatro CPUs HyperSparc de 90 MHz de velocidad. Sin embargo, la independencia de cada proceso hizo posible correrlos simultáneamente en diferentes máquinas, a fin de mejorar la eficiencia del AG.

n6.png

Soluciones mínimas y Pareto-óptimas para el brazo de robot cuyo modelo mecánico se muestra en la Figura 2.


Para evaluar nuestros resultados, usamos como parámetro la desviación máxima del óptimo, la cual se define mediante:

n7.png
donde ri i = f 0 o f x i ( ) dependiendo de cual da el valor máximo de L f p ( ) . La comparación de nuestros resultados con los de Koski y Osyczka [1] se muestran en la Tabla 2. Las primeras ocho filas corresponden al vector ideal, y por tanto en esos casos la desviación L f p ( ) se calcula directamente comparando los dos resultados, tomando el menor como el óptimo, y la diferencia del otro con respecto al primero como la desviación.

CONCLUSION

Un enfoque min-max basado en algoritmos genéticos ha sido propuesto para un problema de optimización con múltiples objetivos de alta complejidad: el balanceo de un brazo de robot. Este
problema tiene cuatro funciones objetivo a ser minimizadas, y es altamente no convexo. Además, los complejos cálculos involucrados consumen una gran cantidad de tiempo de CPU, haciendo necesario el desarrollo de técnicas heurísticas que requieran el menor número posible de evaluaciones de las funciones involucradas. La gran variación de los resultados obtenidos muestran que este problema sería muy difícil de resolver con pura búsqueda aleatoria, o con técnicas de fuerza bruta. Sin embargo, encontrar asimismo una heurística razonable parece una tarea difícil dados los factores previamente mencionados, y la posible presencia de mínimos locales. El AG ha mostrado ser muy consistente en esta aplicación, encontrando mejores soluciones compromiso para todas las instancias del problema considerado. También existen algunos otros enfoques basados en el AG que parecen muy prometedores para esta aplicación, especialmente aquellos en los que se usa una selección de Pareto.
Sin embargo, el tiempo sigue siendo un factor a tomar en cuenta en posteriores aplicaciones del AG a este problema y sería deseable explorar técnicas para reducir el número de valuaciones de la función. No obstante, el uso de estas heurísticas tan poderosas debiera traer beneficios a la robótica y nuestro trabajo debiera ser visto como un pequeño módulo de un sistema más grande cuyo objetivo es optimizar el proceso completo de diseño de un brazo de robot.